package com.laogao.lesson047.tenant;

import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;

/**
 * <b>description</b>： Java进阶、性能优化实战案例100讲，微信公众号:程序员恰恰，源码 & 文档 & 技术支持，请加个人微信号：it3306 <br>
 * <b>time</b>：2025/4/18 11:47 <br>
 * <b>author</b>：ready lao_gao
 */
public class CustomTenantHandler implements TenantLineHandler {
    @Override
    public Expression getTenantId() {
        // 假设有一个租户上下文，能够从中获取当前用户的租户
        String tenantId = TenantContextHolder.getCurrentTenantId();
        // 返回租户ID的表达式
        return new LongValue(tenantId);
    }
    //该方法用于指定数据库表中存储租户 ID 的字段名。
    @Override
    public String getTenantIdColumn() {
        return "tenant_id";
    }
    //该方法用于判断是否忽略某个表的多租户处理。
    @Override
    public boolean ignoreTable(String tableName) {
        // 根据需要返回是否忽略该表
        return false;
    }
}
